Comparing Floating-Point Values (CFPV)

Description:

Avoid testing floating point numbers for equality. Floating-point numbers that should be equal are not always equal due to rounding problems.

Incorrect:

function SomeClass.Calc(limit:double):double;
begin
  if limit = 1.0 then
  begin
        ...
  end;
  ...
end;

Correct:

private const
  EPS : double = 0.00001

function SomeClass.Calc(limit:double):double;
begin
  if abs(limit - 1.0) < EPS then
  begin
        ...
  end;
  ...
end;